package itheima_edu_info_manager.dao;


import itheima_edu_info_manager.domain.Teacher;

public class TeacherDao {
    //1、创建Student学生数组长度为5
    private static Teacher[] teacherArray = new Teacher[5];

    static {
        //模拟读取上次存储的数据
        teacherArray[0] = new Teacher("heima001","余凯琦","22","1998-10-28");
        teacherArray[1] = new Teacher("heima002","许启航","23","1997-07-14");
    }

    //此方法用于添加学生
    public boolean addTeacher(Teacher teacher) {
        /*
            这个方法要做的事
            1、创建Student学生数组长度为5
            2、将接受到的学生对象添加到数组中
            3、返回是否添加成功的boolean类型值

            添加功能加入学号判断:
            findAllStudent方法将学生数组返回即可
        */
        //2、将接受到的学生对象添加到数组中
        //标记位思想:声明一个boolean类型的flag初始化为false，如果成功添加学生，flag赋值为true，方法最后直接返回flag
        boolean flag = false;
        for (int i = 0; i < teacherArray.length; i++) {
            if (teacherArray[i] == null) {//初始化的学生数组：studentArray    -->    [null,null,null,null,null]
                teacherArray[i] = teacher;//将遇到的第一个null值赋为传进来的学生对象
                flag = true;//一旦赋值立马返回true结束方法，防止后续的null值也被赋值为当前对象
                break;
            }
        }
        //学生数组已满，不再塞值
        return flag;
    }

    public Teacher[] findAllTeacher() {
        //findAllStudent方法将学生数组返回即可
        return teacherArray;
    }

    public boolean deleteTeacherById(String id) {
        /*
            1、遍历数组查找该id，该方法能被调用说明学生数组中一定是有学生对象的
            2、该索引位置的学生对象，使用null经行替换
        */
        for (int i = 0; i < teacherArray.length; i++) {
            if (teacherArray[i] != null && teacherArray[i].getId().equals(id)) {
                teacherArray[i] = null;
                return true;
            }
        }
        return false;
    }

    public boolean updateTeacher(Teacher newTeacher, String id) {
        for (int i = 0; i < teacherArray.length; i++) {
            if (teacherArray[i] != null && teacherArray[i].getId().equals(id)) {
                teacherArray[i] = newTeacher;
                return true;
            }
        }
        return false;
    }
}
